General Info Template Language WCTL Commands WebX/Chat WebX/Pro
Release Notes Standard Templates URL Codes WebX/Multi FastCGI, NSAPI, ISAPI

Visit the Web Crossing Conference to find a wealth of WebX info and a community of WebX experts on the Web!

Web Crossing Template Language
Commands & Variables

Table of Contents

About WCTL Commands and Built-in Variables
Variables by function
Variables listed alphabetically
Time and date formats

» About WCTL Commands and Built-in Variables

Web Crossing provides a large number of commands and built-in variables for accessing the conference database.

Note that when you use a variable to get HTML text from the Web Crossing database, this text is generally available either formatted or unformatted. Formatted text has been run through the quick-editor and checked for legal and balanced HTML tags. Unformatted text is the raw text as originally entered by the user. There is an extensive set of string functions to allow you to convert any text to the desired format.

» Variables by function

The following tables organize all the Web Crossing built-in variables by function.

User Information

Conference and Chat Management

Current Web Crossing Context

WCTL Directives


» Current user values
userUser unique ID in hexadecimal. Used in user.function expressions.
userCreate( name )
user.userDestroy
Create or destroy a user
userLookup( name )Lookup a user by name
username
user.setUserName( name )
Name
userEmail
user.setUserEmail( email )
E-mail address
user.setUserPassword( password )
user.userCheckPassword( password )
Set or check a user password
userHomePage
user.setUserHomePage( url )
Home page URL
user2ndLine
user.setUser2ndLine( text )
Second line of information
userBio
user.setUserBio( text )
User biographical information
userUrlsRawUser URL list, unformatted
userUrls
user.setUserUrls( text )
User URL list, formatted
userHasPictureUser has picture
userPictureURL to user's picture
userField Additional custom fields added to user's information record
userCanAddLinksTrue if the user can add links to the current location
userEmailCodeThe user's e-mail code after an automated e-mail message has been sent to them
userUniqueIdUser's unique ID
userUseCookies
user.setUserUseCookies( flag )
True if the user has cookies enabled
postCountNumber of posts tracked for this user
postsReturn most recent posts by this user
user.userIsMember( group )
user.addUserToGroup( group )
user.removeUserFromGroup( group )
Check, add, or remove membership in a group

» Kind of user
userIsUnknown User has neither logged in nor posted as a guest
userIsGuestGuest user (e.g. the user has posted as a guest)
userIsRegisteredRegistered user
userIsHostHost user (for the current location)
userIsSysopSysop user
userIsHostOrSysopSysop
userIsProvisional
user.setUserIsProvisional( flag )
True if the user is provisional or host user (for the current location)

» User last login time
awayHours Check hours since last login
userAwayHoursNumber of hours user has been away for a user ID
lastLoginCheck for last login before a specific date. (Note that %% if lastLogin... %% doesn't make any sense in a login message, because the user is unknown at that point -- if the user is a guest or not logged in, this expression will evaluate as true.)
userLastLoginCheck for last login before a specific date for a user ID

» Current user configuration
userFolderSortBy
user.setUserFolderSortBy( sortBy )
The sort-sequence used to list folders for this user
userShowPictures
user.setUserShowPictures( flag )
Include user pictures with messages
userPictBorder
user.setUserPictBorder( flag )
Show picture borders for this user
userHasRespNameSize Check whether the user has specified a font size for the user name in message
userHasRespInfoSize Check whether the user has specified a font size for the secondary information in messages
userHasRespBodySize
user.setUserRespBodySize( size )
Check whether the user has specified a font size for the body of a message
userRespNameSize
user.setUserRespNameSize( size )
The font size for user names in a message (0 if not specified by the user)
userRespInfoSize
user.setUserRespInfoSize( size )
The font size for secondary information in a message (0 if not specified by the user)
userRespBodySize The font size for message bodies (0 if not specified by the user)
id.userLogoutTime
user.setUserLogoutTime( time )
User logout time in minutes
userMaxData
user.setUserMaxData( max )
Maximum number of data bytes in a list of messages
userMaxMessages
user.setUserMaxMessages( max )
Maximum number of messages in a list of messages
userShowPrepared
user.setUserShowPrepared( flag )
Show the "prepared for..." line at the top of each page
userSubscriptionList User subscription list, as displayed in the user preferences page
userCheckRemoteAddr Check that user certificate is from the same IP address as originally
user.userMarkCurrent Mark a user's subscription list as current

» User subscriptions
userIsSubscribedUser is subscribed to the current location
userSubscriptionsList of locations and whether they are subscribed to or not
userSubscribeSubscribe a user to the current location
userUnsubscribeCancel a user's subscription to the current location
u.userClearSubscriptions Clear a user's entire subscription list
userHasSubscriptionsCheck whether a user has any subscriptions
u.userNewMessagesReturns a list of all new message locations (one per discussion)
mostRecentNewMessageReturns the date/time of the most recent new message from the last userNewMessages

» Selecting users.
These commands let you select a subset of the user directory.
selectUsers Return a list of users matching some selection criteria
selectRandomUser Return a randomly selected user

» Current user access to current location
user.userCanView User can view the current location
userCanAddFoldersUser can add folders to current location
userCanAddDiscussions User can add discussions to current location
userCanAddMessages User can add messages to current location
userCanDelete User can delete the current location
userCanEdit User can edit to current location
u.userIsParticipant User is a participant at the current location
u.userIsModerated User is moderated at the current location
u.userIsReadOnly User is read-only at the current location
u.userHasNoAccess User has no access at the current location

» Other registered user access to current location
otherCanAddFolders Other registered users can add folders to the current location
otherCanAddDiscussions Other registered users can add discussions to the current location
otherCanAddMessages Other registered users can add messages to the current location
otherCanAddLinks Other registered users can add links to the current location

» Author information.
This is about the author of the current folder, discussion, message, or personal information page.
author The unique ID in hexadecimal of the current author. Used in author.function expressions.
setPathAuthor( userId ) Change the author of record for the current location
setAuthor Set the current author to a particular user, and clear the current location
authorIsSysop Current location created by the sysop
authorShow Show author information for the current location
authorName Name of the author of the current location
authorLine2 Author's secondary information
authorInfoUrl URL to author's personal information page
authorEmail E-mail address of author
authorHasPicture Author has a picture
authorPicture URL to author's picture
authorHomePage URL to author's home page
authorBio Author's biographical information
authorUrlsRaw Author's favorite URLs, unformatted
authorUrls Author's favorite URLs, formatted
authorField Author's additional fields
authorUniqueID Author's unique ID in hexadecimal

» Current location
The current location is initially set to the folder, discussion, message, link, or chat room referenced by the user (the location portion of a Web Crossing URL). You can change the location by using the setPath location or other directives, and you can return to the original location at any time by using setPath with no location parameter.
locationPathname of the current location
pathItemNumberItem number for a discussion or message
setPathSet current location
setPathToParentMove to the parent of the current location
setPathToLinkMove to the location pointed to by the current link, without making the link part of the current pathname
setPathFollowLinkMove to the location pointed to by the current link and make the link part of the current pathname
pathIsNoneNot at a valid location
pathIsTopAt top level
pathIsFolderCurrent location is a folder
pathIsDiscussionCurrent location is a discussion
pathIsMessageCurrent location is a message
pathIsLinkCurrent location is a link
pathIsChatCurrent location is a chat room
pathTitleTitle or name of current location
pathTitleUrlSame as pathTitle, but URL quoted (blanks are %20, etc.)
pathUrlURL to current location
parentTitleTitle of parent at specified level
parentTitleUrlSame as parentTitle, but URL quoted (blanks as %20, etc.)
parentUrlURL to parent at specified level
pathIconURL of icon for current location

» Current location values
pathCreatedDateCreation date
pathModifiedDateLast modified date
pathBodyBody text, unformatted
pathBodyFormattedBody text, formatted
pathMessageMessage text (if a message item), unformatted
pathListItemsList items in a folder
pathAddSubfoldersAllow subfolders to be added
pathAddSubfoldersOnceAllow subfolders, but they may only contain discussions
pathNoSubfoldersNo subfolders may be added
pathAddDiscussionsAllow discussions to be added
pathBackgroundBackground, unformatted
pathBannerBanner, unformatted
pathFooterFooter, unformatted
pathIsDeletedHas a message been deleted
pathSortSeqSort sequence for folder items
pathTemplateTemplate for location (e.g. folder template)
pathArchiveDaysFor a folder, the number of days before a discussion expires
pathArchiveTypeDisposition of an elapsed discussion: move to a folder, delete, or purge
pathArchiveFolderIf disposition for an elapsed discussion is to move to a folder, then this is the unique ID of the destination folder
pathIsPermanentChecks whether a discussion is permanent, e.g. never expires
linkShowDescriptionCurrent location is a link that shows its description
linkDescriptionDescriptive text for a link
pathHostsList of hosts for the current location
pathModeratedUsersList of moderated users for the current location
pathParticipantsList of participants for the current location
pathReadOnlyUsersList of read-only users for the current location

» Current location nested contents
pathHasItemsCurrent location has nested items
pathHasFoldersCurrent location has nested folders
pathHasOneFolderCurrent location has exactly one nested folder
pathFolderCountNested folder count
pathHasDiscussionsCurrent location has nested discussions
pathHasOneDiscussionCurrent location has exactly one nested discussion
pathDiscussionCountNested discussion count
newDiscussCount of new discussions in current location
pathHasMessagesCurrent location has nested messages
pathHasOneMessageCurrent location has exactly one message
pathMessageCountCount of nested messages
pathHasNewMessagesCurrent location has new messages for the current user
pathHasOneNewMessageCurrent location has exactly one new message for the current user
pathNewMessageCountCount of new messages for the current user

» Site information.
urlBase/...webx? portion of a Web Crossing URL
usersCountNumber of registered users
siteTitleSite title
sysopEmailSysop e-mail address
siteLicenseeSite licensee name
siteUrlURL to top-level site page
siteImagesImages string from sysop general settings
siteHelpHelp string from sysop general settings
versionWeb Crossing version string
platformSite platform
servePicturesSite is serving user pictures everywhere
serveInfoPictures Site is serving user pictures in the personal information page only
siteCanAutoRegisterUsers may auto-register
siteCanSearchTopTop-level search button is enabled
siteOneSearchSearch the Net via Forum One.
siteCanSearchSearch button is enabled in nested folders and discussions
siteEmailValidateE-mail validation is enabled for this site
useChatServiceChat services are enabled for this site
siteUseCookiesSite is configured to use cookies
siteIsSecureSite is running through a secure server, so use https:// instead of http:// in forwarded URLs
siteHostDomain name of the Web server used to access Web Crossing
waitingForSynchSlave server is waiting for synch with master to complete
pictSizeSiteWIDTH and HEIGHT for site icon
pictSizeDividerWIDTH and HEIGHT for pathname divider icon
pictSizeFolderWIDTH and HEIGHT for folder icon
pictSizeConversationWIDTH and HEIGHT for conversation icon
pictSizeLinkWIDTH and HEIGHT for inline link icon
pictSizeButtonWIDTH and HEIGHT for button icon
pictSizeInlineButtonWIDTH and HEIGHT for inline button icon
pictSizeOutline WIDTH and HEIGHT for outline button icon
siteHasPasswordForm TRUE iff site has a 2-stage login using a separate password form
siteAllowsHttpBasic TRUE iff site is using HTTP basic authentication
userIsHttpBasic TRUE iff the current user was authenticated through HTTP Basic
siteUseEmailScript TRUE iff site uses a script to get a user's e-mail address
siteToolbarAcross Number of buttons across for old-style toolbar
siteFolderShowSysop TRUE iff the sysop is show in folder headings when this user is the author
siteFolderShowAuthor TRUE iff the author of a folder is shown in the folder's heading
siteDiscussionShowSysop TRUE iff the syop
siteDiscussionShowAuthor TRUE iff the author of a discussion is shown in the discussion's heading
copyright The copyright string for the program
programDesc A short string that describes the program

» Enclosures
pathEnclosures Returns list of enclosures.
pathIsDocument TRUE iff the current location is a document
pathDocumentIsImage TRUE iff the current location is an enclosure document.
pathDocumentIsText TRUE iff the current location is a text enclosure document.
pathDocumentName Original filename iff the current location is an enclosure document.
siteHttpUploads TRUE iff the site supports Web-based uploads
siteHttpDownloads TRUE iff the site supports Web-based downloads
pathHttpUploads TRUE iff the current location supports Web-based uploads
pathHttpDownloads TRUE iff the current location supports Web-based downloads
pathInheritsEnclosures TRUE iff the current location inherits its enclosure settings from its parent

» Moderated Messages
s.isObjectionable Returns TRUE iff a string contains objectionable words
s.markObjectionable Inserts tags before and after all possibly objectionable words in a string.

» Selecting and sorting folder and discussion contents.
pathSelectSelect items from a folder or discussion
pathSortSort a list of pathname items

» Chat rooms.
pathIsChatCurrent location is a chat room or table
pathIsAnonymousCurrent location is a chat room that allows anonymous users
pathHasTablesCurrent location is part of a chat room with multiple tables
pathMaxUsersMaximum users per table for a chat table
pathPlayFilePlayback file for a chat table
pathPlayMillisecsPlayback total time in milliseconds
pathRecordFileRecording file for a chat table
broadcastBroadcast to all tables in a chat room
enterChatEnter a chat room, text-chat only
enterChatTableEnter a specific overflow table, text-chat only
enterRoomEnter a chat room, text plus other services if any
enterRoomTableEnter a specific overflow table in a chat room, text plus other services if available
privatePlaybackEnter a private playback table
roomErrorError message if room could not be entered
roomHandleHandle ID for client to use in call to chat Fanout Server
roomIpIP address of Fanout Server
roomPortPort to call Fanout Server

» Authentication certificate
certificate Current user's authentication certificate
alwaysCertificate Generate an authentication (URL) certificate even if the user came in through a cookie.
certificateIsCheck current certificate's tag
certificateLogoutImmediately expire a user's authentication certificate

» Browser information.
imgButtonClient browser supports image buttons
userAgentClient browser "user agent" string
browserCanUseLabelsClient browser can use JavaScript labels

» Error Handling
errorTitleSuggested title for error page
errorError message for error page

» Forms processing
getValueGet a field from a post
hasValueCheck for a field in a post

» CGI environment variables and HTTP response values
envirGet the value of a CGI environment variable
envirCookieGet the value of a cookie in the CGI request from the client
envirListGet a list of CGI environment variables
addResponseHttpAdd a keyword=value pair to the HTTP response being generated

» Current page type
pageIsKind of page being prepared
loginIsKind of login page being prepared
registerIsKind of registration page being prepared

» Message item, discussion heading, and folder heading information.
This information is available while laying out a message, discussion heading, or folder heading.
itemDateCreation date
itemShowPictures Show author picture in this item
itemShowPictBorder Show border around picture in this item
itemShowTimeDate Show time/date
itemNameFontSize Font size for author name
itemInfoFontSize Font size for secondary information
itemBodyFontSize Font size for item body
itemShowOperations Show edit and/or delete buttons
itemCanEdit Item can be edited by current user
itemCanDelete Item can be deleted by current user
itemNumber Item number
itemCount Total number of items in this list
msgListThreaded TRUE iff the message list is being laid out threaded. (Only meaningful in messageListBefore and messageListAfter macros.)

» Standard layouts.
Standard layouts for folders or discussion messages.
pathStandardHeadingShow standard heading for top-level, folder, or discussion
pathItemsShow items
pathItemsAllShow all items
pathItemsInContextShow items in context
pathItemsPreviousShow items previous
pathItemsAreAtEndItems are at the end of the list
responsePostStandard form to post a message
unknownUserHelpStandard help text for an unknown user
folderListBeforeShow HTML before a list of items in a folder
folderListItemShow HTML for an item in a folder
folderListAfterShow HTML after a list of items in a folder
folderListEmptyShow HTML for an empty folder list

» User interface directives.
loginNewsLogin news template, formatted
passwordNewsPassword news template, formatted
greetingNewsGreeting news template, formatted
registerHeadingRegistration heading, formatted
registeredHeadingRegistered heading, formatted
registerErrorRegistration error message
backPathDefault parent location with links to parent folders
backPathThisDefault current location with links to parent folders (e.g. includes the current location in the list of folders)
toolbarStandard toolbar
toolbarBeforeHTML to insert before toolbar
toolbarBetweenHTML to insert between toolbar rows
toolbarAfterHTML to insert after toolbar
editHelpEdit help text, formatted
messageCurrent message item in standard format
bannerBanner for current location, formatted
footerFooter for current location, formatted
backgroundCurrent background
showPreparedForShow Prepared for... line for current user
preparedForDefault Prepared for... heading or none
padInsert padding in <pre> sections

» Message list context.
This information is available when a message list is being laid out.
cmdIsShowAll True if the display command is Show All
cmdIsShowInContext True if the display command is Show In Context
cmdIsShowPrevious True if the display command is Show Previous
msgListPrevious %% location %% of previous item or none
msgListCountPrevious Count of preceding items
msgListFollowing %% location %% of following item or none
msgListCountFollowing Count of following items
msgListEmpty Message list is empty
msgListBetween Eval to code "between" messages

» Login and registration actions
actionPathAction path for login and registration
doActionPathAction path for login and registration, with embedded certificate
actionPathCommandCommand code in action path

» Editing information.
(For registration, user preferences, new folder, new discussion, etc.)
editNameUser name
editPasswordPassword
editEmailE-mail address
editTitleTitle
editHeadingHeading
editMessageMessage
editBannerBanner text, unformatted
editFooterFooter text, unformatted
editBackgroundBackground text, unformatted
editTemplateTemplate
moderatedMessageDisplay moderated message in default format
moderatedDiscussionDisplay moderated discussion in default format
moderatedFolderDisplay moderated folder in default format
editFolderIconType of icon for a link
editShowAuthorTrue to show the item's author
editShowDescriptionTrue to show a link's description
editSortSeqThe sort sequence value
editUrlA link's URL

» Preferences editing information
prefsRenameMessageError message for rename or none
prefsNewNameNew user name from preferences form
prefsEmailErrorError message for e-mail change or none
prefsNewEmailNew e-mail address
prefsSubscrUpdatedMessage for subscription list update
prefsSysopCertificate Sysop authorization certificate when the sysop is changing a user's preferences
prefsPasswordErrorPassword change error to report
prefsPasswordMessageMessage for password change (an error only if prefsPasswordError is set)

» Search commands
searchItems Total number of matching items found by the last pathSearch command
siteSearchIsReady TRUE iff searches can be performed at this time
siteIndexSearchStatus Current status of search, such as indexing status
pathSearch Returns a list of items matching a search query.

» Threaded Messages Display
pathInheritsByUserPreferences TRUE iff current location inherits its threading settings from its parent
pathShowByUserPreferences TRUE iff threading display is from user preferences
pathNetTreeView TRUE iff net effect of all settings is to show as threaded messages
pathNetReplyTo TRUE iff net effect of all settings is to show a Reply button with each message
pathNetSummaryButton TRUE iff net effect of all settings is to show an Outline button next to discussions in their folder listing
pathNetMessageTitle TRUE iff net effect of all settings is to request a title for all messages
u.userThreadingBySite TRUE iff user uses site settings for threading
siteUserDefaultThreading TRUE iff site default is for a user to view as threaded messages
u.userThreading TRUE if user preference is to view as threaded messages
u.userReplyTo TRUE iff user preference is to show a Reply button with each message
siteUserDefaultReplyTo TRUE iff site default is for a user to see a Reply button with each message
u.userSummaryButton TRUE iff user preference is to see an Outline button next to discussions in their folder listing
siteUserDefaultSummaryButton TRUE iff site default is for a user to see a Outline button next to discussions in their folder listing

» Newsgroups
pathNewsgroup Newsgroup for current location
siteHasNews TRUE iff news service is enabled for the site
editNewsgroup Name of newsgroup when editing an Add Folder or Edit Folder form.

» E-mail list mirroring
siteHasEmailServices TRUE iff site has e-mail services (e.g. DNS server address is available)
pathEmailMirror Mailbox from which to read e-mail list messages
pathEmailPW Password for pathEmailMirror mailbox
pathEmailStripSig Signature to strip from tail of incoming messages
pathEmailPostThru TRUE if messages posted to Web Crossing are forwarded to the e-mail list
pathEmailReply Address to which to send messages posted directly to Web Crossing
pathEmailReplyTo Reply-to value for messages forwarded to the list, or blank to use the user's e-mail address
pathEmailFrom From value for messages forwarded to the list, or blank to use the user's e-mail address
editEmailMirror Setting for pathEmailMirror during Add Folder or Edit Folder
editEmailPW Setting for pathEmailPW during Add Folder or Edit Folder
editEmailStripSig Setting for pathEmailStripSig during Add Folder or Edit Folder
editEmailPostThru Setting for pathEmailPostThru during Add Folder or Edit Folder
editEmailReply Setting for pathEmailReply during Add Folder or Edit Folder
editEmailReplyTo Setting for pathEmailReplyTo during Add Folder or Edit Folder
editEmailFrom Setting for pathEmailFrom during Add Folder or Edit Folder

» String Operations
String manipulation
countNumber of characters in a string
splitSplit the first token off a string
tailSplit the last token off a string
lookupLookup a pattern in a string
substringGet a substring of a string
getcharGet a character from a string
putcharPut a character into a string
trimRemove leading and trailing white space
toLowerConvert to lower case
toUpperConvert to upper case
evalEvaluate a string as a WCTL expression
evalTemplateEvaluate a string as a WCTL template
isObjectionableCheck for objectionable words
markObjectionableMark objectionable words
crlfA carriage-return/line-feed string
crA carriage-return string
lfA line-feed string
randomStringA random 8-character string
User names
getFirstNameFirst name from a name string
getLastNameLast name from a name string
nameToFirstLastConvert name to first-last format
nameToLastFirstConvert name to last-comma-first format
HTML
toSGMLConvert to SGML quoted format
fromSGMLConvert from SGML quotes to original string
htmlClosureFixup for HTML tag closure and remove illegal tags
quickEditProcess a string with the Web Crossing quick editor
selfRefInsert correct certificate in all local URLs
htmlStripTagsStrip all HTML tags from a string
URLs
toURLConvert to URL quoted format
fromURLConvert from URL quotes to original string
Numbers
hexToIntConvert a hexadecimal string to an integer
intToHexConvert an integer to hexadecimal
intWithCommasConvert an integer to a numeric string with commas
numberString.numberFormat( format ) Convert a numeric string to a specified numeric format. Number formats include currency and scientific notation.
MIME Formats
toBase64Convert a string to base-64 format
fromBase64Convert a string from base-64 format
toQuotedPrintableConvert a string to quoted-printable format
fromQuotedPrintableConvert a string from quoted-printable format
canUseQuotedPrintableCheck whether a string is suitable for quoted-printable formatting (otherwise use base-64)

» Date and time operations
dateCurrent date
timeCurrent time
secsFrom1970Time in seconds since Jan 1, 1970 (GMT)
dateGMTCurrent date/time in GMT
date.dateToGmtConvert a date object from local to GMT
date.dateFromGmt>Convert a date object from GMT to local time
dateObject Time/date format to get a date object (Date objects are strings with the format "Y4-M2-D2-H4.I2.S2".)
dateObj Same as dateObject
dateString.dateFormat( format ) Formats a date per the format string
dateString.dateAddSeconds( seconds ) Adds the specified number of seconds (positive or negative) and returns the adjusted dateObject.
dateString.dateSubtractSeconds( seconds ) Subtracts the specified number of seconds (positive or negative) and returns the adjusted dateObject.
dateString.dateDeltaSeconds( date2 ) Returns the number of seconds for (date2 - dateString).
dateString.dateLessThan( date2 ) Returns TRUE iff dateString < date2
dateString.dateEqual( date2 ) Returns TRUE iff dateString == date2
dateString.dateGreaterThan( date2 ) Returns TRUE iff dateString > date2

» Path Operations
pathDeleteDelete the current location
pathExportExport the current location
pathImportImport to the current location
pathHitsDecDecrement hits counter for current location
pathHitsIncIncrement hits counter for current location
pathPostsDecDecrement posts counter for current location
pathPostsIncIncrement posts counter for current location

» File system and logging
fileGet the contents of a file
fileErrorError message from last file command
fileDeleteDelete a file
string.log Writes a string into the log file, if the Web Crossing master log switch is on

» Scripting and E-mail
execRun a script program
cgiRun a script program with CGI environment variables
scriptErrorError from last exec or cgi, or none
emailSend an e-mail message

» Variables listed alphabetically

Click to see variables starting with a letter:

» VariableUsage
%% actionPath %% Action path for login and registration. When a user logs in or registers, the original URL has to be remembered so that it can be used after the login/registration is complete. The actionPath is the original request, reformatted as <command>@<action>. For example, an actionPath to show a folder might look like 14@.eaf433.

You need to use the actionPath whenever you build a URL to process a login or registration form. See the login template in the standard.tpl file for examples of this usage.

%% actionPathCommand %% Command code from actionPath
%% addResponseHttp( "name=value" )%% Add a keyword=value pair to the HTTP response being generated. The CRLF at the end of the keyword-value pair is added automatically by Web Crossing. Do not add the CRLF in this function, or the HTTP response will be invalid.
%% user.addUserToGroup( group )%% Add a user to a group. For example, user.addUserToGroup( "abc" ) will add the current user to the group abc.
%% alwaysCertificate %% Generate an authentication (URL) certificate even if the user came in through a cookie. For example, when forwarding to a new location in Web Crossing, this is recommended for the certificate portion of the destination URL. This will guarantee that the user is logged in a recognized correctly even though the destination URL has a different host name from the currently installed cookie. (This is possible when running on multi-homed servers.)
%% author %% The unique ID in hexadecimal of the current author. Used in author.function expressions.
%% authorBio %% The formatted biographical information for the author of the current location.
%% authorEmail %% The e-mail address of the author of the current location.
%% authorField field %% Author's additional fields, where field is the field name.

See the example section on adding your own fields.

%% if authorHasPicture %% True if the author of the current location has a picture.
%% authorHomePage %% URL of the home page for the author of the current location.
%% authorInfoUrl %% URL to the personal information page for the author of the current location
%% if authorIsSysop %% True if the author of the current location is the sysop.
%% authorLine2 %% Secondary information for the author of the current location.
%% authorName %% Name of the author of the current location.
%% authorPicture %% URL to the picture of the author of the current location. If the author does not have a picture, this will be to the default picture specified by the sysop.
%% if authorShow %% True if the author has requested that he/she be shown as part of the presentation of the current location.
%% authorUniqueID %% Author's unique ID in hexadecimal
%% authorUrls %% Favorite URLs of the author of the current location, formatted.
%% authorUrlsRaw %% Favorite URLs of the author of the current location, unformatted.
%% if awayHours > count %% Check whether the current user last logged in more than count hours ago. For example,
    %% if awayHours > 4 %%
    Welcome back...
    %% endif %%
will show the Welcome back... text when the user has been away for more than 4 hours.
» VariableUsage
%% background %% Current background, formatted for use in a <body> tag. For example,
    <body %% background %%>
will set the background color or pattern as specified in Web Crossing for the current location.
%% backPath %% Default current location "backpath" with links to parent folders, does not include the current location (just its parents).
%% backPathThis %% Default current location "backpath" with links to parent folders, same as backPath except it includes the current location as well.
%% banner %% Banner for current location, formatted
%% broadcast message %% Broadcast a message to the current chat room location. For example,
    %% broadcast form.message %%
where "message" is an input field in the form being processed.
%% browserCanUseLabels %% Evaluates to TRUE iff the client browser can use JavaScript labels. (Only false right now for MSIE 3.x).
» VariableUsage
%% s.canUseQuotedPrintable %% TRUE iff a string can be placed in a MIME envelope in quoted-printable format (otherwise use base-64).
%% certificate %%
%% certificate tag %%
Current user's authentication certificate. This is used to build Web Crossing URLs. For example,
    "%% urlBase %%14@%% certificate %%@/Books"
is the URL to display the /Books folder.

You may specify a new tag to replace whatever tag is currently in the user's certificate. If you specify a tag of "-" (without the quotes), then any tag will be removed.

For example, you might want to give the user a choice to switch between text-only and normal presentation:

    <a href="%% urlBase %%
      14@%% certificate - %%
      @%% location %%">Normal view</a><a href="%% urlBase %%
      14@%% certificate TEXT %%
      @%% location %%">Normal view</a>
(Of course, you would also need to customize all the page templates in your webx.tpl file to return a text-only view when they see the TEXT tag.)
%% if certificateIs Tag %% Check the current certificate's tag. For example,
    %% if certificateIs TEXT %%
      ...text-only view...
    %% else %%
      ...normal view...
    %% endif %%

Do not use the "-" tag delimiter in this command.

%% certificateLogout %% Immediately expire (logout) the current user's authentication certificate.
%% cgi( commandLineString ) %% Run a program with the specified command line, with all the environment variables from the current CGI request, and return the output of the program, removing any HTTP header lines from it. For example, cgi( "myCgiProgram myArgument" ). Additional environment variables may be set for this command with VAR=value pairs preceding the command, for example, cgi( "MYVAR=test OTHER=42 myCgiProgram myArgument" ). (See the section on CGI Environment Variables.)
%% copyright %% The copyright string for the server
%% string.count %% Return number of characters in a string. For example, "abc".count is 3.
%% if cmdIsShowAll %% True if the current command is "show all"
%% if cmdIsShowInContext %% True if the current command is "show in context". This command should show one or more previous messages.
%% if cmdIsShowPrevious %% True if the current command is "show previous". This command should show previous messages.
%% cr %% A carriage-return string
%% crlf %% A carriage-return/line-feed string
» VariableUsage
%% date format %% Current date/time. You may specify a format or just use the default, which is defined in the sysop control panel (the initial setting is M1/D1/Y2 H1:I2a followed by any time zone).
%% dateString.dateAddSeconds( seconds ) %% Adds the specified number of seconds (positive or negative) and returns the adjusted dateObject.
%% dateString.dateDeltaSeconds( date2 ) %% Returns the number of seconds for (date2 - dateString).
%% dateString.dateEqual( date2 ) %% Returns TRUE iff dateString == date2
%% dateString.dateFormat( format ) %% Formats a date per the format string
%% dateString.dateFromGmt( format ) %% Converts a date object from GMT to local. format is optional and defaults to dateObject.
%% dateFunction( dateObject ) %%
%% dateFunction( dateObj ) %%
Time/date format to get a date object, where dateFunction is any operation that takes a date format string as a paramter. (Date objects are just strings with the format "Y4-M2-D2-H4.I2.S2".)
%% dateGMT( format ) %% Returns the current GMT date/time. format is optional and defaults to dateObject.
%% dateString.dateGreaterThan( date2 ) %% Returns TRUE iff dateString > date2
%% dateString.dateLessThan( date2 ) %% Returns TRUE iff dateString < date2
%% dateString.dateSubtractSeconds( seconds ) %% Subtracts the specified number of seconds (positive or negative) and returns the adjusted dateObject.
%% dateString.dateToGmt( format ) %% Converts a date object from local to GMT. format is optional and defaults to dateObject.
%% doActionPath %%

%% doActionPath tag %%

Action path for login and registration with embedded certificate. For example, if the current actionPath is
    14@.aef456
then the doActionPath is the same as
    14@%% certificate %%@.aef456
See the standard.tpl file for some examples of actual use.

You may specify a new tag for the certificate used for the URL, see the certificate variable for details.

» VariableUsage
%% editBackground %% Background text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited background when notifying the user of an error in adding the requested folder.
%% editBanner %% Banner text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited banner when notifying the user of an error in adding the requested folder.
%% editEmail %% E-mail address. This variable is only meaningful inside a registration form, or when a guest user is posting a folder/discussion/message.
%% editEmailFrom %% Setting for pathEmailFrom during Add Folder or Edit Folder
%% editEmailMirror %% Setting for pathEmailMirror during Add Folder or Edit Folder
%% editEmailPostThru %% Setting for pathEmailPostThru during Add Folder or Edit Folder
%% editEmailPW %% Setting for pathEmailPW during Add Folder or Edit Folder
%% editEmailReply %% Setting for pathEmailReply during Add Folder or Edit Folder
%% editEmailReplyTo %% Setting for pathEmailReplyTo during Add Folder or Edit Folder
%% editEmailStripSig %% Setting for pathEmailStripSig during Add Folder or Edit Folder
%% editFolderIcon %% Folder icon type, "web", "folder", or "discussion". Used in adding or editing a link.
%% editFooter %% Footer text, unformatted. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited footer when notifying the user of an error in adding the requested folder.
%% editHeading %% Heading. This variable is only meaningful inside an addFolder, editFolder, addDiscussion, or editDiscussion template, while preparing an "Add/Edit Folder/Discussion" page. This variable is either the original value, or the edited heading when notifying the user of an error.
%% editHelp %% Edit help text, evaluated. This is the evaluated sysop Edit Help template.
%% editMessage %% Message text, unformatted. This variable is only meaningful inside an addMessage template. It is the message text as entered by the user to be posted to the current discussion
%% editName %% User name. This variable is the username for registration, adding a folder, adding a discussion, or adding a message.
%% editNewsgroup %% Name of newsgroup when editing an Add Folder or Edit Folder form.
%% editPassword %% Password. This variable is the password for the register template. It is either empty or the password entered by a user who is going to receive an error report.
%% editShowAuthor %% True if author is to be shown. Available while adding or editing.
%% editShowDescription %% True if a link's description is to be shown. Available while adding or editing a link.
%% editSortSeq %% Sort sequence. Available while adding or editing a link or chat room.
%% editTemplate %% Template. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited template when notifying the user of an error in adding the requested folder.
%% editTitle %% Title. This variable is only meaningful inside an addFolder or editFolder template, while preparing an "Add/Edit Folder" page. This variable is either the original value, or the edited title when notifying the user of an error in adding the requested folder.
%% editUrl %% URL for a link. Available while adding or editing.
%% enterChat %%
%% enterChat( textGroup ) %%
If the current location is a chat table, then enter it for text-chat only. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterChat( "socks" ) to be served by a SOCKS fanout server.
%% enterChatTable( "n textGroup" ) %% If the current location is a chat table, then enter it for text-chat only. Takes a parameter which is the auto-overflow table index from 0 to n. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterRoom( "1 socks" ) to be served by a SOCKS fanout server.
%% enterRoom %%
%% enterRoom( textGroup ) %%
If the current location is a chat table, then enter it for full services. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup expression is provided, this is the name of the chat fanout-server group to use. For example, enterRoom( "socks" ) to be served by a SOCKS fanout server.
%% email( message ) %% Send an e-mail message. See Sending E-mail.
%% enterRoomTable( "n textGroup" ) %% If the current location is a chat table, then enter it for full services. Takes a parameter which is the auto-overflow table index from 0 to n. Evaluates to true if the chat room was entered. Sets roomError, roomHandle, roomIp, roomPort. If a textGroup is provided, this is the name of the chat fanout-server group to use. For example, enterRoomTable( "0 socks" ) to be served by a SOCKS fanout server.
%% envir.cgiVarname %%
%% envir( cgiVarnameExpr ) %%
Get the value of a CGI environment variable, such as
    %% envir.query_string %%
cgiVarnameExpr can be any WCTL expression, such as
    %% set item "query_string" %% %% envir( item ) %%
%% envirCookie.cookieName %%
%% envirCookie( envirCookie ) %%
Get the value of a cookie in the CGI request from the client
%% envirList %% Return a blank-delimited list of all available CGI variables. See the showEnvir template in standard.tpl for an example of using this variable to display a list of all CGI variables and their values.
%% errorTitle %% Suggested title for an error message page. Available in the error form.
%% error %% Error message for an error message page. Available in the error form.
%% string.eval %% Evaluate a string as a Web Crossing Template Language expression. For example, "1 + 2".eval evaluates to 3.

You can use set in an eval expression, but you cannot user break, continue, broadcast, if, else, elseif, macro, endmacro, while, endwhile.

%% string.evalTemplate %% Evaluate a string as a Web Crossing Template Language template. For example,
    %% set delim "%" & "%" %% %% set template "abc" & delim & "1+2" & delim & "def" %% %% template.evalTemplate %%
results in abc3def being inserted into the output.
%% exec( commandLineString ) %% Run a program with the specified command line, and return the output of the program. For example, exec( "myProgram myArgument" ). Environment variables may be set for this command with VAR=value pairs preceding the command, for example, exec( "MYVAR=test OTHER=42 myProgram myArgument" ).
» VariableUsage
%% file( filename ) %% Get the contents of a file. filename can be any expression. The file is not cached, so external changes to the file are picked up immediately.
%% fileDelete( filename ) %% Delete a file. filename can be any expression. Evaluates to the error message for the delete, or the empty string if no error.
%% fileError %% Error message from last file command, or the empty string if no error.
%% folderListAfter %% Show HTML after a list of items in a folder
%% folderListBefore %% Show HTML before a list of items in a folder
%% folderListEmpty %% Show HTML for an empty folder
%% folderListItem( item ) %% Show HTML for an item in a folder. The current location is used to locate the correct template or HTML text for the specified item. See the folderBy... templates in standard.tpl for examples.
%% footer %% Footer for current location, formatted. This variable finds the closest folder with a footer, or else uses the sysop default footer.
%% string.fromBase64 %% Convert a string from base-64 to binary. (base-64 is a MIME encoding format.)
%% string.fromQuotedPrintable %% Convert a string from quoted-printable to binary. (Quoted-printable is a MIME encoding format.)
%% string.fromSGML %% Convert from SGML quotes to original string. For example, "&lt;b&gt;".fromSGML is "<b>".
%% string.fromURL %% Convert from URL quotes to original string. For example, "This%20path".fromURL is "This path".
» VariableUsage
%% string.getFirstName %% First name from a string. For example, "John Smith".getFirstName is "John". The name can be in first-last or last-comma-first format. For example, "Smith, John".getFirstName is still "John".
%% string.getLastName %% Last name from a string. For example, "John Smith".getLastName is "Smith". The name can be in first-last or last-comma-first format. For example, "Smith, John".getLastName is still "Smith".
%% string.getchar( ix ) %% Get a character from a string as an integer value. ix is 0-origin and may be any expression. For example, "abc".getchar(0) is 'a'; "abc".getchar(1) is 'b'.
%% getValue inputName %%
%% getValue( nameExpr ) %%
Get value from a posted form. Evaluates to the empty string if the input field is not defined. For example,
    %% getValue "message" %%
will get the value of the < field from the input form.
    %% getValue( "message" ) %%
is equivalent, and "message" can be any expression.

In most cases, instead of getValue "message", you can just use form.message.

%% greetingNews %% Greeting news template, formatted.
» VariableUsage
%% hasValue inputName %%
%% hasValue( nameExpr ) %%
Check for a value in a posted form. True if the field is present in the posted form. For example,
    %% if hasValue "message" %%
will evaluate to true if the form being processed has a "message" input field.
    %% if hasValue( "message" ) %%
is equivalent, and "message" can be any expression.
%% string.hexToInt %% Convert a hexadecimal string to an integer. For example, "1A".hexToInt is 26. If this function is applied to an integer, the result is the empty string. For example, 50.hexToInt is the empty string.
%% string.htmlClosure %% Fixup for HTML tag closure and remove illegal tags, usually applied to user posts. For example, "<h3>"<blink>Hello!".htmlClosure is "<h3>Hello!</h3>".

If you use quickEdit, htmlClosure, and selfRef, do the quickEdit first, then the htmlClosure, as in myPost.quickEdit.htmlClosure.selfRef.

%% string.htmlStripTags %% Remove all HTML tags from a string
» VariableUsage
%% if imgButton %% Check whether the user's browser supports image buttons. For example,
    %% if imgButton %%
      <input type=image
      name=" Create Folder " src="...">%% else %%
      <input type=submit
      value=" Create Folder ">%% endif %%
    
%% int.intToHex %% Convert an integer to hexadecimal. For example, 26.intToHex is "1A".
%% int.intWithCommas %% Convert an integer to string with commas. For example, 1234567.intToHex is "1,234,567".
%% if string.isObjectionable %% Check for objectionable words or phone numbers in a string. Returns TRUE if the string contains objectionable words.
%% itemBodyFontSize %% Font size for message item body text, only valid while laying out a message item. This is either the user's setting or the sysop default value.
%% if itemCanDelete %% Item can be deleted by current user, only valid while laying out a message item.
%% if itemCanEdit %% Item can be edited by current user, only valid while laying out a message item.
%% itemCount %% Total number of items in the current discussion, only valid while laying out a message item.
%% itemDate format %% Creation date of the current message item, only valid while laying out a message item. You can specify the format, or just use the default.
%% itemInfoFontSize %% Font size for secondary information, only valid while laying out a message item. This is either the user's setting or the sysop default value.
%% itemNameFontSize %% Font size for author name, only valid while laying out a message item. This is either the user's setting or the sysop default value.
%% itemNumber %% Item number, only valid while laying out a message item.
%% if itemShowOperations %% Show edit and/or delete buttons, only valid while laying out a message item.
%% if itemShowPictBorder %% Show border around picture in this item, only valid while laying out a message item.
%% if itemShowPictures %% Show author picture in this item, only valid while laying out a message item.
%% if itemShowTimeDate %% Show time/date, only valid while laying out a message item.
» VariableUsage
%% if lastLogin < MM/DD/YYYY.HH:MM:SS %% Check for last login before a specific date. For example,
    %% if lastLogin < 02/15/1996.00:00%%
      We've added a new service...
    %% endif %%
could be used to display information in the greeting page the first time a user logs in after some new service has been added.
%% lf %% A line-feed character string
%% linkDescription %% Descriptive text for a link, if the current location is a link
%% if linkShowDescription %% Show the description for a link in its folder
%% location %% Pathname of the current location. This variable can be used to construct Web Crossing URLs, such as
    "%% urlBase %%14@%% certificate %%@%% location %%"
This URL will display the current folder, discussion, or message.
%% if loginIs kind %% Kind of login page being prepared. This variable is only meaningful while a login page is being prepared.
    Kind           Meaning
    ------------   ----------------------------
    normal         initial login form
    failure        login failure for some reason
    noSlots        no free slots to login
    noRegister     auto-register not supported
    

For example,

    %% if loginIs normal %%
    %% else %%
      Login failure.
    %% endif %%
%% string.log %% Writes a string into the Web Crossing log file, if the master-logging switch is on
%% loginNews %% Login news template, formatted
%% string.lookup( pattern, startIx ) %% Lookup a pattern in a string. startIx is the 0-origin starting point for the lookup, and defaults to 0. The result is the starting index of the first pattern, or the length of the string if the pattern is not found. For example,
    "abcbc".lookup( "bc" ) is 1,
    "abcbc".lookup( "bc", 1 ) is 1,
    "abcbc".lookup( "bc", 2 ) is 3,
    "abcbc".lookup( "xx" ) is 5.
» VariableUsage
%% message %% If the current location is a message, then it is formatted with its normal appearance. Otherwise, this results in an empty string.
%% string.markObjectionable %%
%% string.markObjectionable( before, after ) %%
Mark objectionable words. All objectionable words and/or phone numbers are marked by inserting the specified text before and after the objectionable words. The default for ( before, after ) is ( "<font color=red>", "</font>" ).
%% message %% If the current location is a message, then it is formatted with its normal appearance. Otherwise, this results in an empty string.
%% moderatedMessage %% Displays a moderated message in standard format.
%% moderatedDiscussion %% Displays a moderated discussion in standard format.
%% moderatedFolder %% Displays a moderated folder in standard format.
%% mostRecentNewMessage %%
%% mostRecentNewMessage( format ) %%
Returns the date of the most recent item from the last u.userNewMessages. If the date format is omitted, the date is formatted as a dateObject.
%% msgListBetween %% The HTML text between messages, formatted.
%% msgListCountFollowing %% Count of following items, only valid during a message list layout.
%% msgListCountPrevious %% Count of preceding items, only valid during a message list layout.
%% if msgListEmpty %% Message list is empty, only valid during a message list layout.
%% msgListFollowing %% %% location %% of following message item or none, only valid during a message list layout.
%% msgListPrevious %% %% location %% of previous item or none, only valid during a message list layout.
%% msgListThreaded %% Returns TRUE iff the message list is displayed as threaded messages. Only valid in messageListBefore and messageListAfter macros.
» VariableUsage
%% string.nameToFirstLast %% Convert name to first-last format. For example, "Smith, John".nameToFirstLast is "John Smith"; "Smith, Ph.D., John".nameToFirstLast is "John Smith, Ph.D.".

If the name is already in first-last format, there is no change. For example, "John Smith".nameToFirstLast is "John Smith"

%% string.nameToLastFirst %% Convert name to first-last format. For example, "John Smith".nameToLastFirst is "Smith, John"; "John Smith, Ph.D.".nameToLastFirst is "Smith, Ph.D., John".

If the name is already in last-comma-first format, there is no change. For example, "Smith, John".nameToLastFirst is "Smith, John"

%% newDiscuss %% Count of new discussions in the current location for the current user
%% numberString.numberFormat( format ) %% Convert a numeric string to a specified numeric format. Number formats include currency and scientific notation.

The format string may contain any leading and trailing characters. These leading and trailing characters are output before/after the reformatted number.

Control characters in the format string are:
#Optional digit.
0Required digit
.Optional decimal point
,Optional comma indicator
;Optional split into left (non-negative) and right (negative) formats. The number is converted to absolute value, so it is non-negative, before it is evaluated by the right (negative) format.
%Display as a percentage (e.g. 1.0 is 100%)
E+ or e+Display a signed exponent
E- or e-Display an exponent, signed only for negative exponent values
-- Examples --
NumberStFormatStConverted to
0.0710.00%7.10%
$36500.00e+003.65e+03
3650$0.00e-00$3.65e03
0.03650.00E-03.65E-2
123.5E01550.00E+01.24E+157
1350$#,##0;($#,##0)$1,350
-33$#,##0;($#,##0)($33)
-1234$#,##0;($#,##0)($1,234)
123456789$#,##0;($#,##0)$123,456,789
950.0095.00
123,4560123456
123456#,##0123,456
1.2360.001.24
1.2360.############1.236
1.2367890.############1.236789
1.20.001.20
3E60.003000000.00
3E6#,##0.003,000,000.00
3E5#,##0,00300,000.00
-1230.00-123.00
12300000.00e+0012300.00e-02
123.10.0000e-01.2310e2
1.23E-30.0000.001
9.9010
0.901
0.090.00.1
0.09990.0000.100
0.0009900
0.000990.0000.001
0.0009990.0000E9.9900E-4
0.00990.00.0

» VariableUsage
%% if otherCanAddDiscussions %% Check if other registered users can add discussions to the current location.
%% if otherCanAddFolders %% Check if other registered users can add folders to the current location.
%% if otherCanAddLinks %% Check if other registered users can add links to the current location.
%% if otherCanAddMessages %% Check if other registered users can add messages to the current location.
» VariableUsage
%% pad column %% Insert padding in <pre> sections. This variable assumes that text is being laid out inside a <pre> section, so that blanks can be used to align columns. It inserts enough blanks so that the next character will be output at the specified column. Columns are numbered from 1 at the leftmost edge. For example,
    <pre>>
    Location%% pad 30 %%
    Count
    %% setPath /Books %%
      %% pathTitle %%
      %% pad 30 %%
      %% pathDiscussionCount %%
    %% setPath /New Ideas %%
      %% pathTitle %%
      %% pad 30 %%
      %% pathDiscussionCount %%
    
might display as
    Location                     Count
    Books                        23
    New Ideas                    35
    
%% if pageIs Kind %% Kind of page being prepared.
    Kind 
    ----------
    login
    password
    greeting
    loginToPost
    register
    registered
    	
    view
    toolbar
    	
    toplevel
    folder
    addFolder
    editFolder
    previewFolder
    editPreviewFolder
    checkDeleteFolder
    deletedFolder
    
    discussion
    addDiscussion
    editDiscussion
    previewDiscussion
    editPreviewDiscussion
    checkDeleteDiscussion
    deletedDiscussion
    
    addMessage
    messageError
    editMessage
    previewMessage
    editPreviewMessage
    checkDeleteMessage
    deletedMessage
    editHelp
    
    addChat
    editChat
    deleteChat
    chatRoom
    	
    addLink
    editLink
    deletedLink
    
    editPreferences
    editedPreferences
    	
    userInfo
    	
    subscribed
    unsubscribed
    noSubscriptions
    noNewMesssages
    
    accessList
    groups
    	
    search
    searchResults
    	
    sysop
    userMacro
    fileToServe
    checkModerated
    emailValidate
    chat
    error
    
%% parentTitle %%
%% parentTitle level %%
Title of parent, or title of parent from the top down. For example, if the current location is
    /Books/History/18th Century
then
    %% parentTitle %%
would be History (e.g the immediate parent);
    %% parentTitle 1 %%
would be Books (e.g the 1st-level parent);
    %% parentTitle 2 %%
would be History (e.g the 2nd-level parent).
%% parentTitleUrl %%
%% parentTitleUrl level %%
Same as parentTitle, but the title is URL-quoted (e.g. blanks are %20, etc.)
%% parentUrl %%
%% parentUrl level %%
URL to parent at specified level. For example, if the current location is
    /Books/History/18th Century
then
    %% parentUrl %%
would be something like http://yoursite/webx?14@@.efa453, a URL to /Books/History (e.g the immediate parent);
    %% parentUrl 1 %%
would be a URL to /Books (e.g the 1st-level parent);
    %% parentUrl 2 %%
would be a URL to /Books/History (e.g the 2nd-level parent).
%% passwordNews %% Password news template, formatted
%% pathSearch( spec ) %% Returns a list of locations matching a search specification. The whole site is searched. The spec is a blank-delimited list of keyword=value pairs. Values are URL quoted so that they do not contain any blanks.

The specification can include the following:

  • keywords=list -- blank delimited list of search keywords (after URL dequoting)
  • date>datespec -- items must have dates > datespec
  • date>=datespec -- datespec is mm/dd/yy.hh:mm:ss
  • date=datespec
  • date<=datespec
  • date<datespec
  • skip=ss -- number of items to skip (default is 0)
  • count=cc -- number of items to display (default is 20)
  • deleted -- specifies that deleted messages are to be returned
  • in=location -- specifies that all returned messages are to be contained in location
Only items the current user can access are returned.

For example,

    %% set items pathSearch( "keywords=testing%20software" ) %%
will return up to 20 messages, dicussions, or folders containing both the words testing and software.
%% pathSelect( "spec" ) %% Select a list of items in a folder or discussion. spec is an optional expression, and defaults to all items. It is a blank-delimited list of selection criteria:

  • type=fdlcm -- select type of items allowed, folder/discussion/link/chat/messages, such as type=f or type=fd
  • date>datespec, date>=datespec, date=datespec, date<=datespec, or date<datespec -- datespec is mm/dd/yy.hh:mm:ss. For example, date>4/9/97.0:0.
  • skip=ss -- number of items to skip, such as skip=10
  • count=cc -- number of items to check, such as count=20
  • treeorder -- return messages sorted in tree order instead of conversation order
  • %% pathShowByUserPreferences %% TRUE iff threading display is from user preferences
    %% list.pathSort( "spec" ) %% Sort a list of location items. list is a blank-delimited list of unique pathname IDs, as returned from pathSelect. spec is a blank-delimited list of sort keys, from most to least significant:
  • type=fdlcm -- sort by item type, in the sequence specified, e.g. type=flcdm sorts into folders, links, chats, discussions, and messages
  • date=format -- by last-modified date, if format is omitted, then Y4M2D2H2I2 is used
  • created=format -- by creation date, if format is omitted, then Y4M2D2H2I2 is used
  • sortSeq -- by sortSeq value for each item
  • author.username -- by author last, first name field
  • author.userFirst -- by author first name field
  • author.userLast -- by author last name field
  • title -- title
  • parentTitle -- parent title
  • level -- by nesting depth in the discussion tree
  • messageNumber -- by message number
  • path.userField -- by user-defined field
      * path.userField/t will treat as time/date info,
      * path.userField/n will treat as numeric info.

    Time/date formats may not contain blank characters.

    The sort is normally in ascending sequence (alphabetical or oldest to newest). You can add /d to any item to sort that key in reverse sequence. For example, Spec == "title date/d" will sort by title. If two items have the same title, then they are sorted with the most-recently-modified item first.

    You can use the /n, /t, and /d directives together. For example, "path.priority/n" will sort by a user-defined numeric priority field, from smallest to largest values. "path.priority/n/d" will sort by the same field, but from largest to smallest.

    You can specify a date format with path.userFields, such as path.userField/t=Y4M2D2

    Descending sequence with a time/date format is specified after the format, as in date=Y4M2D2/d, or path.userField/t=Y4M2D2/d.

  • %% if pathAddDiscussions %% Users may add discussions to the current location (with appropriate access)
    %% if pathAddSubfolders %% Users may add folders to the current location (with appropriate access)
    %% if pathAddSubfoldersOnce %% Users may add folders to the current location (with appropriate access), but these folders may only contain discussions
    %% pathArchiveDays %% For a folder, the number of days before a discussion expires
    %% if pathArchiveType == "type" %% "type" may be "folder", "delete", or "purge". Disposition of an elapsed discussion: move to a folder, delete, or purge
    %% pathArchiveFolder %% If disposition for an elapsed discussion is to move to a folder, then this is the unique ID of the destination folder
    %% pathBackground %% Background, unformatted, for the current location
    %% pathBanner %% Banner, unformatted, for the current location
    %% pathBody %% Body text, unformatted, for the current location
    %% pathBodyFormatted %% Body text, formatted, for the current location
    %% pathCreatedDate( "format" ) %% Creation date for the current location. A format is optional.
    %% pathDelete %% Delete the current location without saving it to the deleted file.
    %% pathDiscussionCount %% Nested discussion count if the current location is a folder, otherwise empty
    %% pathDocumentIsImage %% Returns TRUE iff the current location is a document enclosure that is an image file.
    %% pathDocumentIsText %% Returns TRUE iff the current location is a document enclosure that is a text file.
    %% pathDocumentName %% If the current location is an enclosure document, then this returns the original name of the enclosure. If the item is not an enclosure, or if no name is available, then returns the empty string.
    %% pathEmailFrom %% From value for messages forwarded to the list, or blank to use the user's e-mail address
    %% pathEmailMirror %% Mailbox from which to read e-mail list messages
    %% pathEmailPostThru %% TRUE if messages posted to Web Crossing are forwarded to the e-mail list
    %% pathEmailPW %% Password for pathEmailMirror mailbox
    %% pathEmailReply %% Address to which to send messages posted directly to Web Crossing
    %% pathEmailReplyTo %% Reply-to value for messages forwarded to the list, or blank to use the user's e-mail address
    %% pathEmailStripSig %% Signature to strip from tail of incoming messages
    %% pathEnclosures %% Returns a blank-delimited list of enclosures at the current location. Each item in the list can be opened by using %% setPath( item ) %%.
    %% pathExport( filename ) %% Export the current location to filename (which can be any expression). Will append to an existing file.
    %% pathFolderCount %% Nested folder count if the current location is a folder, otherwise empty
    %% pathFooter %% Footer, unformatted, for the current location
    %% if pathHasDiscussions %% Current location has nested discussions
    %% if pathHasFolders %% Current location has nested folders
    %% if pathHasItems %% Current location has nested items
    %% if pathHasMessages %% Current location has nested messages
    %% if pathHasNewMessages %% Current location has new messages for the current user
    %% if pathHasOneDiscussion %% Current location has exactly one nested discussion
    %% if pathHasOneFolder %% Current location has exactly one nested folder
    %% if pathHasOneMessage %% Current location has exactly one message
    %% if pathHasOneNewMessage %% Current location has exactly one new message for the current user
    %% if pathHasTables %% True if the current location is a chat room/table in a room with multiple tables.
    %% pathHitsDec %% Decrement the hits counter for the current location.
    %% pathHitsInc %% Increment the hits counter for the current location.
    %% pathHosts delim %% Evaluates to a list of host user names for the current location, separated by delim. For example,
      %% pathHosts "<br>" %%
    %% if pathHttpDownloads %% Check to see if the current location supports enclosure downloads by regular users.
    %% if pathHttpUploads %% Check to see if the current location supports enclosure uploads by regular users.
    %% pathIcon %% URL of icon for current location
    %% pathImport( filename ) %% Import from filename into the current location (a folder). filename may be any expression.
    %% pathInheritsByUserPreferences %% TRUE iff current location inherits its threading settings from its parent
    %% pathInheritsEnclosures %% TRUE iff current location inherits its enclosure settings from its parent
    %% if pathIsAnonymous %% True if the current location is a chat room/table that allows anonymous users
    %% if pathIsChat %% True if the current location is a chat room/table
    %% if pathIsDeleted %% Check whether a message has been deleted
    %% if pathIsDiscussion %% Current location is a discussion
    %% pathIsDocument %% Returns TRUE iff the current location is an enclosure document.
    %% if pathIsFolder %% Current location is a folder
    %% if pathIsLink %% True if the current location is a link
    %% if pathIsMessage %% Current location is a message
    %% if pathIsNone %% Not at a valid location
    %% if pathIsPermanent %% Checks whether a discussion is permanent, e.g. never expires
    %% if pathIsTop %% At top level
    %% pathItemNumber %% The item number for a discussion or message. This number is assigned when the item is first created and never changes. You can use this number in a pathname URL to the item.
    %% pathItems %% Displays items in a folder or discussion in standard format. The display stops when the user's limits on message count or total size are reached.
    %% pathItemsAll %% Displays all items in a folder or discussion in standard format. Ignores user's limits on message count and total size.
    %% pathItemsAreAtEnd %% True if the list of messages goes through the last message.
    %% pathItemsInContext %% Displays items in a folder or discussion in standard format, and includes one or more previous messages to show context. The display stops when the user's limits on message count or total size are reached.
    %% pathItemsPrevious %% Displays items in a folder or discussion in standard format, showing previous items. The display stops when the user's limits on message count or total size are reached.
    %% pathListItems %% Folder setting to list items in that folder
    %% pathMainRoom %% Common room for a chat table
    %% pathMaxUsers %% Maximum users for a chat table. When this number is reached, an overflow table will be started automatically.
    %% pathMessage %% Message text (if a message item), unformatted
    %% pathMessageCount %% Count of nested messages for current location
    %% pathModeratedUsers delim %% Evaluates to a list of moderated user names for the current location, separated by delim. For example,
      %% pathModeratedUsers "<br>" %%
    %% pathModifiedDate( "format" ) %% Last modified date for current location. A format is optional.
    %% pathNetMessageTitle %% TRUE iff net effect of all settings is to request a title for all messages
    %% pathNetReplyTo %% TRUE iff net effect of all settings is to show a Reply button with each message
    %% pathNetSummaryButton %% TRUE iff net effect of all settings is to show an Outline button next to discussions in their folder listing
    %% pathNetTreeView %% TRUE iff net effect of all settings is to show as threaded messages
    %% pathNewMessageCount %% Count of new messages for the current user in the current location
    %% pathNewsgroup %% Newsgroup for current location
    %% if pathNoSubfolders %% No subfolders may be added to the current location
    %% pathParticipants delim %% Evaluates to a list of participant user names for the current location, separated by delim. For example,
      %% pathParticipants "<br>" %%
    %% pathPlayFile %% Playback file for a chat table
    %% pathPlayMillisecs %% Total playback time in milliseconds for a chat table
    %% pathPostsDec %% Decrement post counts for the current location
    %% pathPostsInc %% Increment post counts for the current location
    %% pathReadOnlyUsers delim %% Evaluates to a list of read-only user names for the current location, separated by delim. For example,
      %% pathReadOnlyUsers "<br>" %%
    %% pathRecordFile %% Recording filename for a chat table
    %% pathStandardHeading %% Display standard heading for top-level, folder, or discussion
    %% pathSortSeq %% Sort sequence in the item's parent folder. Higher numbers are sorted to the top.
    %% pathTemplate %% Template for location (e.g. folder template)
    %% pathTitle %% Title or name of current location
    %% pathTitleUrl %% Title or name of current location, URL-quoted (e.g. blank is %20, etc.)
    %% pathUrl %% URL to current location
    %% pictSizeButton %% WIDTH and HEIGHT for button icon
    %% pictSizeConversation %% WIDTH and HEIGHT for conversation icon
    %% pictSizeDivider %% WIDTH and HEIGHT for pathname divider icon
    %% pictSizeFolder %% WIDTH and HEIGHT for folder icon
    %% pictSizeInlineButton %% WIDTH and HEIGHT for inline button icon
    %% pictSizeLink %% WIDTH and HEIGHT for inline link icon
    %% pictSizeOutline %% WIDTH and HEIGHT for outline button icon
    %% pictSizeSite %% WIDTH and HEIGHT for site icon
    %% platform %% Site host-computer platform
    %% id.postCount %% Return the number of posts tracked for a user. id is a hexadecimal unique user ID
    %% id.posts( n ) %% Return most recent n posts by a user, n defaults to 5. id is a hexadecimal unique user ID
    %% prefsEmailError %% Error message for e-mail change or none. This variable is only valid for a user preferences page.
    %% prefsNewEmail %% New e-mail address. This variable is only valid for a user preferences page.
    %% prefsNewName %% New user name from preferences form. This variable is only valid for a user preferences page.
    %% if prefsPasswordError %% Password change error to report. This variable is only valid for a user preferences page.
    %% prefsPasswordMessage %% Message for password change (an error only if prefsPasswordError is set). This variable is only valid for a user preferences page.
    %% prefsRenameMessage %% Error message for rename or none. This variable is only valid for a user preferences page.
    %% prefsSubscrUpdated %% Message for subscription list update. This variable is only valid for a user preferences page.
    %% prefsSysopCertificate %% Sysop authorization certificate when the sysop is changing a user's preferences. This variable is only valid for a user preferences page.
    %% if preparedFor %% Default %% Prepared for... %% heading or none if turned off.
    %% privatePlayback filename %% Same as enterRoom, but creates a room for a private playback. This room is destroyed as soon as the user leaves it.
    %% programDesc %% A short description of the server program
    %% string.putChar( ix, char ) %% Put a character into a string and returns the new string. If the string is a variable, then the character is put into the variable, changing its value. ix is 0-origin. For example, "abc".putChar( 1, 'x' ) is "axc". With a variable,
      %% set testVar "abc" %%
      %% testVar.putChar( 1, 'x' ) %%
      -- now testVar is "axc"
    If ix is the length of the string, then the string is extended by one character. So "".putChar( 0, 13 ).putChar( 1, 10 ) starts with an empty string, extends it by one character to become a string with a single carriage-return, and then extends it again to add a linefeed. The result is the standard Internet carriage-return/linefeed line terminator.
    » VariableUsage
    %% string.quickEdit %% Process a string with the Web Crossing quick editor, usually applied to user posts. For example, "i in italic" is "<i>in italic</i>".

    If you use both quickEdit and htmlClosure, do the quickEdit first, as in myPost.quickEdit.htmlClosure.

    » VariableUsage
    %% randomString %% An 8-character random string
    %% registeredHeading %% Heading for Registration Completed page, formatted
    %% registerError %% Error message during registration form layout
    %% registerHeading %% Heading for New User Registration page, formatted
    %% if registerIs %% Kind of registration page being prepared.
      Kind
      -------------
      normal
      failure
      noName
      duplicateName
      invalidName
      noEmail
      badEmail
      noPassword
      badPassword
    %% user.removeUserFromGroup( group ) %% Remove a user from a group. For example, user.removeUserFromGroup( "abc" ) will remove the current user from the group abc.
    %% responsePost %% Standard form for posting a response
    %% roomError %% Error message after entering a chat room.
    %% roomHandle %% Handle ID to send to Java client after entering a chat room.
    %% roomIp %% IP for Java client to call to enter the chat room
    %% roomPort %% Port for Java client to call to enter the chat room
    » VariableUsage
    %% scriptError %% Error from last exce or cgi command. The empty string if no error.
    %% searchItems %% Total number of matching items found by the last pathSearch. For example, if the first 15 of 200 items were returned by pathSearch, then searchItems would be 200.
    %% secsFrom1970 %% Time in seconds since 1970, in GMT.
    %% selectUsers( specification ) %% Return a list of users matching some selection criteria. The returned list is blank-delimited unique user IDs in hexadecimal.

    The specification is a blank-delimited list of fieldname=value pairs. The '=' delimiter can be '*' for a prefix match, e.g. userfirst*ti to match all first names starting with "ti". The values must be URL quoted so that they do not contain any blanks.

    Special fieldnames start with "user":

  • usermax, max matching items to return, defaults to 50 if not specified
  • userskip, number of matching items to skip
  • userFirst, user first name
  • userLast, user last name
  • userEmailname, user name in e-mail address
  • userDomain, domain in e-mail address
  • userName, user name (last, first)
  • userEmail, email address
  • userEmailCode, email code
  • userHomePage, home page
  • userFolderSortBy, folder items sort sequence
  • userRespNameSize, font size for names in responses
  • userRespInfoSize, font size for other info in responses
  • userRespBodySize, font size for body text in responses
  • userLogoutTime, logout time in seconds
  • userMaxData, max characters per response page
  • userMaxMessages, max messages per response page
  • user2ndLine, second line of user info
  • userBio, user bio
  • userUrls, user URLs

    All other fieldnames are user-defined fields, such as city=San%20Francisco or user.city=San%20Francisco (city and user.city are equivalent).

  • %% selectRandomUser %% Return a randomly selected user unique ID.
    %% string.selfRef %% Insert correct certificate in all local URLs.
    %% if serveInfoPictures %% Site is serving user pictures in the personal information page only
    %% if servePictures %% Site is serving user pictures everywhere
    %% setAuthor( id )%% Set the current author to a particular user, and clear the location. The user id is the hexadecimal unique ID of a user.
    %% setPath( location ) %% Set current location. If no location is specified, then the location is reset to the location from the user's URL. location can be any expression.
    %% setPathAuthor( userID ) %% Sets the author of the current location.
    %% setPathFollowLink %% If the current location is a link, then reset the current location as if the user had followed that link. That is, the link will become part of the current path hierarchy.
    %% setPathToLink %% If the current location is a link, then reset the current location to be the location the link points to. This is as if the user had gone directly to the link destination without going through the link; the link will not be part of the current path hierarchy.
    %% setPathToParent %% Set the current location to its parent folder.
    %% user.setUser2ndLine( text ) %% Set new 2nd-line text for a user. For example, user.setUser2ndLine( "Hi there" ) will set the 2nd-line for the current user to "Hi there".
    %% user.setUserBio( text ) %% Set new biographical text for a user. For example, user.setUserBio( "Hi there" ) will set the biographical text for the current user to "Hi there".
    %% user.setUserEmail( text ) %% Set new e-mail address for a user. For example, user.setUserBio( "x@y.z" ) will set the e-mail address for the current user to "x@y.x".
    %% user.setUserFolderSortBy( option ) %% Set new folder sort sequence for a user. For example, user.setUserFolderSortBy( "oldestCreated" ) will set the folder sort sequence for the current user to "oldestCreated". option can be "oldestCreated", "newestModified", "default", "newestCreated", or "alphabetically".
    %% user.setUserHomePage( text ) %% Set new home page address for a user. For example, user.setUserHomePage( "http://www.webcrossing.com/" ) will set the home page address for the current user to "http://www.webcrossing.com/".
    %% user.setUserIsProvisional( flag ) %% Set new provisional status for a user. For example, user.setUserIsProvisional( 0 ) will make the current user not provisional.
    %% user.setUserLogoutTime( minutes ) %% Set new logout time in minutes for a user. For example, user.setUserLogoutTime( 30 ) will set automatic logout time to 30 minutes.
    %% user.setUserMaxData( bytes ) %% Set new maximum data length for a discussion listing in bytes for a user. For example, user.setUserMaxData( 10000 ) will set the page limit to 10,000 bytes for a discussion listing.
    %% user.setUserMaxMessages( count ) %% Set new maximum number of messages for a discussion listing in bytes for a user. For example, user.setUserMaxMessages( 15 ) will set the maximum message count to 15 per piece of discussion listing.
    %% user.setUserName( newName ) %% Set user's name. For example, user.setUserName( "Bob Smith" ) will set the current user's name to "Bob Smith". The function returns TRUE if the name change was performed, or 0 if the new name is already in use.
    %% user.setUserPassword( newPassword ) %% Set user's password. For example, user.setUserPassword( "abc" ) will set the current user's password to "abc". The function returns TRUE if the password change was performed, or 0 if the change could not be made. Note: this function does not check the security of the supplied password. Do not set the sysop password to "sysop", as this will temporarily disable Web Crossing.
    %% user.setUserPictBorder( flag ) %% Set the flag for showing a border around user pictures. For example, user.setUserPictBorder( 0 ) will turn off the border around user pictures.
    %% user.setUserRespBodySize( fontSize ) %% Set the font size for message body text. FontSize can be 1 through 6. For example, user.setUserRespBodySize( 5 ) will set the font size for message body text to 5.
    %% user.setUserRespInfoSize( fontSize ) %% Set the font size for message information text. FontSize can be 1 through 6. For example, user.setUserRespInfoSize( 5 ) will set the font size for message information text to 5.
    %% user.setUserRespNameSize( fontSize ) %% Set the font size for message author text. FontSize can be 1 through 6. For example, user.setUserRespNameSize( 5 ) will set the font size for message author text to 5.
    %% user.setUserShowPictures( flag ) %% Set the flag for showing user pictures. For example, user.setUserShowPictures( 0 ) will turn off user pictures.
    %% user.setUserShowPrepared( flag ) %% Set the flag for showing "prepared for" at the top of each page. For example, user.setUserShowPrepared( 0 ) will turn off the "prepared for" text.
    %% user.setUserUrls( urlList ) %% Set the list of favorite URLs for a user. For example, user.setUserUrls( "http://www.webcrossing.com/ Web Crossing" ). You can set multiple entries, one per line (use crlf between lines).
    %% user.setUserUseCookies( flag ) %% Set the flag for using cookies. For example, user.setUserUseCookies( 0 ) will turn off cookies.
    %% if showPreparedFor %% Show %% Prepared for... %% line for current user
    %% siteAllowsHttpBasic %% TRUE iff site is using HTTP basic authentication
    %% if siteCanAutoRegister %% Users may auto-register
    %% if siteCanSearch %% Search button is enabled in nested folders and discussions
    %% siteHasEmailServices %% TRUE iff site has e-mail services (e.g. DNS server address is available)
    %% siteHasNews %% TRUE iff news service is enabled for the site
    %% siteHasPasswordForm %% TRUE iff site has a 2-stage login using a separate password form
    %% if siteOneSearch %% Search the Net via Forum One
    %% if siteCanSearchTop %% Top-level search button is enabled
    %% siteDiscussionShowAuthor %% TRUE iff the author of a discussion is shown in the discussion's heading
    %% siteDiscussionShowSysop %% TRUE iff the syop
    %% if siteEmailValidate %% Site is validating user e-mail as part of the registration process
    %% siteFolderShowAuthor %% TRUE iff the author of a folder is shown in the folder's heading
    %% siteFolderShowSysop %% TRUE iff the sysop is show in folder headings when this user is the author
    %% siteHelp %% Help string from sysop general settings
    %% siteHost %% Domain name of the Web server used to access Web Crossing
    %% siteHttpDownloads %% Returns TRUE iff the site allows Web-based (HTTP) downloads
    %% siteHttpUploads %% Returns TRUE iff the site allows Web-based (HTTP) uploads
    %% siteImages %% Images string from sysop general settings
    %% siteIndexSearchStatus %% Returns status of search engine, such as "indexing".
    %% if siteIsSecure %% Site is running through a secure server, so use https:// instead of http:// in forwarded URLs
    %% siteLicensee %% S ite licensee name
    %% siteSearchIsReady %% TRUE iff a pathSearch command can be processed
    %% siteTitle %% Site title
    %% siteToolbarAcross %% Number of buttons across for old-style toolbar
    %% siteUrl %% URL to top-level site page
    %% siteUseEmailScript %% TRUE iff site uses a script to get a user's e-mail address
    %% if siteUseCookies %% TRUE if the site is configured to use cookies
    %% siteUserDefaultReplyTo %% TRUE iff site default is for a user to see a Reply button with each message
    %% siteUserDefaultThreading %% TRUE iff site default is for a user to view as threaded messages
    %% string.split( delim ) %% Split the first token off a string. delim defaults to a blank (' '). For example, "abc def".split is "abc"; "abc def".split( 'e' ) is "abc d".

    If split is applied to a variable, the token and delimiter are removed from the variable. For example,

      %% set myVar "abc def ghi" %%
      %% set token myVar.split %%
      -- now myVar is "def ghi" and token is "abc"
    %% string.substring( ix, count ) %% Get a substring of a string. ix is 0-origin. count defaults to the remaining characters in the string. For example, "abc".substring( 1, 2 ) is "bc"; "abcdefg".substring( 2 ) is "cdefg".
    %% sysopEmail %% Sysop e-mail address
    » VariableUsage
    %% string.tail( delim ) %% Split the last token off a string. delim defaults to a blank (' '). For example, "abc def".tail is "def"; "abc def".tail( 'd' ) is "ef".

    If tail is applied to a variable, the token and delimiter are removed from the variable. For example,

      %% set myVar "abc def ghi" %%
      %% set token myVar.tail %%
      -- now myVar is "abc def" and token is "ghi"
    %% time format %% Current time, with an optional format.
    %% string.toBase64 %% Convert a string to base-64. (Base-64 is a MIME encoding format.)
    %% string.toLower %% Convert to lower case. This function may be applied to either a string or an integer character. For example, "AbC".toLower is "abc"; 'A'.toLower is 'a'.
    %% toQuotedPrintable %% Convert a string to quoted-printable. (Quoted-printable is a MIME encoding format.)
    %% toolbar %% Default toolbar
    %% toolbarAfter %% HTML to insert after toolbar
    %% toolbarBefore %% HTML to insert before toolbar
    %% toolbarBetween %% HTML to insert between toolbar rows
    %% string.toSGML %% Convert to SGML quoted format. For example, "<b>".toSGML is "&lt;b&gt;".
    %% string.toUpper %% Convert to upper case. This function may be applied to either a string or an integer character. For example, "AbC".toUpper is "ABC"; 'a'.toUpper is 'A'.
    %% string.toURL %% Convert to URL quoted format. For example, "The path".toURL is "The%20path".
    %% string.trim %% Remove leading and trailing white space. For example, " abc ".trim is "abc".
    » VariableUsage
    %% unknownUserHelp %% Standard help text for an unknown user
    %% urlBase %% %% /...webx? %% portion of a Web Crossing URL
    %% if useChatService %% This site has chat services enabled
    %% user %%
    %% id.user %%
    User unique ID in hexadecimal. Used in user.function expressions.
    %% user2ndLine %%
    %% id.user2ndline %%
    Second line of information. id is a hexadecimal unique user ID
    %% userAgent %% Client browser "userAgent" string
    %% id.userAwayHours %% Number of hours before current login. id is a hexadecimal unique user ID
    %% userBio %%
    %% id.userBio %%
    User biographical information. id is a hexadecimal unique user ID
    %% if userCanAddDiscussions %%
    %% if id.userCanAddDiscussions %%
    User can add discussions to current location. id is a hexadecimal unique user ID
    %% if userCanAddFolders %%
    %% if id.userCanAddFolders %%
    User can add folders to current location. id is a hexadecimal unique user ID
    %% if userCanAddLinks %%
    %% if id.userCanAddLinks %%
    User can add links to current location. id is a hexadecimal unique user ID
    %% if userCanAddMessages %%
    %% if userCanAddMessages %%
    User can add messages to current location. id is a hexadecimal unique user ID
    %% if userCanDelete %%
    %% if id.userCanDelete %%
    User can delete the current location. id is a hexadecimal unique user ID
    %% if userCanEdit %%
    %% if id.userCanEdit %%
    User can edit to current location. id is a hexadecimal unique user ID
    %% if id.userCanView %% User can view the current location. id is a hexadecimal unique user ID
    %% u.userCheckPassword( password ) %% Check a user's password. Returns TRUE iff the password is correct.
    %% user.userCheckRemoteAddr %% Flag for checking remote IP address for a user's certificate on each URL.
    %% u.userClearSubscriptions %% Clear's a user's subscription list.
    %% userCreate( name ) %% Create a new user. Returns the user ID if successful, or the empty string if not.
    %% siteUserDefaultSummaryButton %% TRUE iff site default is for a user to see a Outline button next to discussions in their folder listing
    %% u.userDestroy %% Destroy a user.
    %% userEmail %%
    %% if.userEmail %%
    E-mail address. id is a hexadecimal unique user ID
    %% userEmailCode %%
    %% id.userEmailCode %%
    User's e-mail code assigned for automatic e-mail validation. id is a hexadecimal unique user ID
    %% userField field %% Obsolete, use user.varName. Additional custom fields added to user's information record. For example, you could add phone number, address, customer number, etc. field is the name of the additional field.

    In the input registration or user preferences form, use an input name of "user.XXXX", where "XXXX" is the field name you will use with this variable.

    See the example section on adding your own fields.

    %% if userFolderSortBy sequence %%
    %% id.userFolderSortBy %%
    The sort-sequence used to list folders for this user.
      Sequence
      -------------
      oldestCreated
      newestModified
      default
      newestCreated
      alphabetically
    id is a hexadecimal unique user ID
    %% if u.userHasNoAccess %% User has no access to the current location. id is a hexadecimal unique user ID
    %% if userHasPicture %%
    %% if id.userHasPicture %%
    User has picture. id is a hexadecimal unique user ID
    %% if userHasRespBodySize %% Check whether the user has specified a font size for the body of a message
    %% if userHasRespInfoSize %% Check whether the user has specified a font size for the secondary information in messages
    %% if userHasRespNameSize %% Check whether the user has specified a font size for the user name in message
    %% if id.userHasSubscriptions %% Check whether the user has any subscription list
    %% userHomePage %%
    %% id.userHomePage %%
    Home page URL. id is a hexadecimal unique user ID
    %% if userIsGuest %%
    %% if id.userIsGuest %%
    Guest user (e.g. the user has posted as a guest). Also see userIsUnknown. Internally, a "guest" user is one who has logged in as a guest to post some item. Prior to becoming a guest, a user is "unknown". id is a hexadecimal unique user ID
    %% if userIsHost %%
    %% if id.userIsHost %%
    Host user (for the current location). id is a hexadecimal unique user ID
    %% if userIsHostOrSysop %% Sysop or host user (for the current location)
    %% userIsHttpBasic %% TRUE iff the current user was authenticated through HTTP Basic
    %% user.userIsMember( group ) %% Check for membership in a group. user is the unique ID of a user; group can be any string expression. The result of this expression is the empty string if there is no group with the specified name. Otherwise, the result is 1 or 0.

    For example,

      user.userIsMember( "hosts" )
    will return 1 when the current user is a member of the hosts group.
    %% id.userIsModerated %% Check whether a user is moderated at the current location. id is the unique ID of a user.
    %% if id.userIsParticipant %% Check whether a user is a participant at the current location. id is the unique ID of a user.
    %% if userIsProvisional %%
    %% if id.userIsProvisional %%
    Provisional user. id is a hexadecimal unique user ID
    %% id.userIsReadOnly %% Check whether a user is read-only at the current location. id is the unique ID of a user.
    %% if userIsRegistered %%
    %% if id.userIsRegistered %%
    Registered user. id is a hexadecimal unique user ID
    %% if userIsSubscribed %%
    %% if id.userIsSubscribed %%
    User is subscribed to the current location. id is a hexadecimal unique user ID
    %% if userIsSysop %%
    %% if id.userIsSysop %%
    Sysop user. id is a hexadecimal unique user ID
    %% if userIsUnknown %%
    %% if id.userIsUnknown %%
    User has neither logged in nor posted as a guest. id is a hexadecimal unique user ID
    %% if id.userLastLogin( date ) %% Checks last login prior to date. id is a hexadecimal unique user ID
    %% userLogoutTime %%
    %% userLogoutTime %%
    User logout time in minutes. id is a hexadecimal unique user ID
    %% userLookup( name ) %% Lookup a user by name. Returns the user ID if successful, or the empty string if not.
    %% user.userMarkCurrent %% Mark a user's subscription list as current.
    %% userMaxData %%
    %% id.userMaxData %%
    Maximum number of data bytes in a list of messages. id is a hexadecimal unique user ID
    %% userMaxMessages %%
    %% id.userMaxMessages %%
    Maximum number of messages in a list of messages. id is a hexadecimal unique user ID
    %% username %%
    %% id.username %%
    Name. id is a hexadecimal unique user ID
    %% u.userNewMessages( maxMessages, skip ) %% Returns a blank-delimited list of discussions that have new messages for a user. maxMessages is optional and defaults to all messages. skip is optional and defaults to 0.
    %% if userPictBorder %%
    %% if id.userPictBorder %%
    Show picture borders for this user. id is a hexadecimal unique user ID
    %% userPicture %%
    %% id.userPicture %%
    URL to user's picture
    %% u.userReplyTo %% TRUE iff user preference is to show a Reply button with each message
    %% userRespBodySize %%
    %% id.userRespBodySize %%
    The font size for message bodies (0 if not specified by the user)
    %% userRespInfoSize %%
    %% id.userRespInfoSize %%
    The font size for secondary information in a message (0 if not specified by the user). id is a hexadecimal unique user ID
    %% userRespNameSize %%
    %% id.userRespNameSize %%
    The font size for user names in a message (0 if not specified by the user). id is a hexadecimal unique user ID
    %% usersCount %% Number of registered users
    %% if userShowPictures %%
    %% id.userShowPictures %%
    Include user pictures with messages. id is a hexadecimal unique user ID
    %% if userShowPrepared %%
    %% if id.userShowPrepared %%
    Show the "prepared for..." line at the top of each page. id is a hexadecimal unique user ID.
    %% if id.userSubscribe %% Subscribe a user to the current location. id is a hexadecimal unique user ID.
    %% id.userSubscriptions %% Returns a list of pathnames and flags for a user's current subscription list. For example,
      user.subscriptions
    might return ".eef45a 1 .eef231 0 .eea123 1", where two folders or discussions are subscribed to, and one item is specifically not subscribed to. See the subscriptions template in standard.tpl for an example of using this to display a user's subscription list. id is a hexadecimal unique user ID
    %% userSubscriptionList %%
    %% id.userSubscriptionList %%
    User subscription list, as displayed in the user preferences page. id is a hexadecimal unique user ID
    %% u.userSummaryButton %% TRUE iff user preference is to see an Outline button next to discussions in their folder listing
    %% u.userThreading %% TRUE if user preference is to view as threaded messages
    %% u.userThreadingBySite %% TRUE iff user uses site settings for threading
    %% userUniqueId %%
    %% id.userUniqueId %%
    User's unique ID. id is a hexadecimal unique user ID
    %% id.userUnsubscribe %% Cancel a user's subcription to the current location. id is a hexadecimal unique user ID
    %% userUrls %%
    %% id.userUrls %%
    User URL list, formatted. id is a hexadecimal unique user ID
    %% userUrlsRaw %%
    %% id.userUrlRaw %%
    User URL list, unformatted. id is a hexadecimal unique user ID
    %% if userUseCookies %%
    %% if id.userUseCookies %%
    User has cookies enabled. id is a hexadecimal unique user ID
    » VariableUsage
    %% version %% Web Crossing version string
    » VariableUsage
    %% if waitingForSynch %% This server is a slave waiting to synch to the master

    » Time and date formats

    A time and date format is a list of time/date specifiers, mixed with literal characters, as follows:
      Y2  2 character year
      Y4  4 character year
      
      M1  1 or 2 digit month
      M2  2 digit month
      MMM 3 character month, all caps
      Mmm 3 character month, leading cap
      M   full month name, leading cap
      
      D1  1 or 2 digit day of month
      D2  2 digit day of month
      D3  1st, 2nd, 3rd, 4th...
      
      WWW 3 character day of week, all caps
      Www 3 character day of week, leading cap
      W   full day of week, leading cap
      
      H1  1 or 2 digit hour, 12 hour clock
      H2  2 digit hour, 12 hour clock
      H3  1 or 2 digit hour, 24 hour clock
      H4  2 digit hour, 24 hour clock
      
      I1  1 or 2 digit minutes
      I2  2 digit minutes
      
      S1  1 or 2 digit seconds
      S2  2 digit seconds
      
      L1  1, 2, or 3 digit milliseconds
      L3  3 digit milliseconds
      
      A   AM/PM, upper case
      a   am/pm, lower case
      
      N   output a "-" if the date/time is negative
      
      $c  escape to embed "c" into the output string
    

    For example,

    The default time/date format is defined in the sysop control panel. It is initially M1/D1/Y2 H1:I2a followed by any time zone.


    Copyright © 1996-98 by Lundeen & Associates, Alameda, California.